package repository

import "gorm.io/gorm"

type User struct {
	Id       UserId `gorm:"column:id;primary_key;AUTO_INCREMENT"` // 主键id
	Name     string `gorm:"column:name;"`                         // 昵称
	Phone    string `gorm:"column:phone;"`                        // 手机号
	QQ       int    `gorm:"column:qq"`                            // qq号
	Password string `gorm:"column:password"`                      // 密码
	Source   int    `gorm:"column:source"`                        // 来源
}

type UserId int

func (ui UserId) Int() int {
	return int(ui)
}

func (u *User) TableName() string {
	return "user"
}

func UserModel() *gorm.DB {
	return DB.Model(&User{})
}

func (ui UserId) User() User {
	user := User{}
	UserModel().Where("id = ?", ui).Find(&user)
	return user
}

func GetUserInfoByQQNum(qqNum int) (user User, err error) {
	err = UserModel().Where("qq = ?", qqNum).First(&user).Error
	return
}

func (ui UserId) SetPassword(password string) error {
	return UserModel().Where("id = ?", ui).Update("password", password).Error
}
